ITS#8650 retry gnutls_handshake after GNUTLS_E_AGAIN
authorRyan Tandy <ryan@nardis.ca>
Sat, 6 May 2017 22:50:13 +0000 (22:50 +0000)
committerRyan Tandy <ryan@nardis.ca>
Fri, 28 Jul 2017 01:04:41 +0000 (02:04 +0100)
Gbp-Pq: Name ITS8650-retry-gnutls_handshake-after-GNUTLS_E_AGAIN.patch

libraries/libldap/tls_g.c

index 2fe2777da74931b7b5c89cdb89b4f6eb02642020..c9d18f52bdd8f16d93b6a0c6330a83d5243cb4dc 100644 (file)
@@ -358,7 +358,9 @@ tlsg_session_accept( tls_session *session )
        tlsg_session *s = (tlsg_session *)session;
        int rc;
 
-       rc = gnutls_handshake( s->session );
+       for ( rc = gnutls_handshake ( s->session );
+             rc == GNUTLS_E_INTERRUPTED || rc == GNUTLS_E_AGAIN;
+             rc = gnutls_handshake ( s->session ) );
        if ( rc == 0 && s->ctx->reqcert != LDAP_OPT_X_TLS_NEVER ) {
                const gnutls_datum_t *peer_cert_list;
                unsigned int list_size;